今天來建置NN模型嚕,我們所建置的模型與 Kraska et al. 初步測試的模型一樣,2 層全連接層,每層32個神經元,神經元的激勵函數使用ReLU。
建置模型程式碼如下:
import keras
from keras.models import Sequential
from keras.layers import Dense
model = Sequential()
model.add(Dense(32, input_dim=1, activation="relu"))
model.add(Dense(32, activation="relu"))
model.add(Dense(1))
sgd=keras.optimizers.SGD(lr=0.0001) # lr:學習率,可調參數
model.compile(loss="mse", optimizer=sgd, metrics=["mse"])
model.fit(x, y, epochs=1000, batch_size=32, verbose=0) # x:訓練資料, y:訓練目標
完整程式碼在 J Code
我們將建置的NN模型,訓練隨機產生資料(100筆,範圍1~1000)的CDF,並看訓練完的預測結果與原本CDF分布的差異性。
我們隨機產生資料的方法,使用 Numpy 的 random_integers,隨機產生一維 Array的資料並排序,將資料先轉換成CDF,NN模型再進行訓練。
測試結果如下 :
跟前天使用SLR測試結果來看,NN 模型比較擬合於CDF分布。
明天進行不同Model配置的比較 ~ 掰噗 !